#include<stdio.h>
#include<unistd.h>
#include <stdlib.h>
#include<assert.h>
#include<sys/types.h>
#include <sys/wait.h>
int main()
{
  // pid_t id=fork();
  // assert(id>=0);
  // if(id==0)
  // {
  //   int cnt =500;
  //   while(cnt)
  //   {
  //     printf("我是子进程，还有 %d S的寿命 pid:%d  ppid:%d\n",cnt--,getpid(),getppid());
  //     sleep(2);
  //   }
  //   exit(152);
  // }
  // int status=0;
  // pid_t ret_id=waitpid(id,&status,0);
  // printf("我是父进程，已成功等到子进程 pid:%d  ppid:%d ret_id:%d child_exit_code:%d child_exit_signal:%d\n",getpid(),getppid(),ret_id,(status>>8)&0xFF,status&0x7F);
  pid_t id=fork();
  if(id)
  {
    printf("我是父进程：%d\n",getpid());
  }
  else
  {
    printf("子进程：ppid:%d ,pid:%d\n",getppid(),getpid());

    fork();
    printf("子进程的子进程：ppid:%d ,pid:%d\n",getppid(),getpid());
  }
  return 0;
}
